#ifndef _EKU_FILE_H_
#define _EKU_FILE_H_

#include <user/pipe.h>

/* 文件系统驱动符号 */

struct file_t
{
	 /* 文件类型 */
	 uint8_t type;
	 
	 union
	 {
		  struct pipe_t  *pipe;
		  uint32_t node;

		  struct file_t *free_next;
	 };
};

/* 文件类型 */
#define FD_FREE  0
#define FD_NONE  1
#define FD_PIPE  2
#define FD_NODE 3

/* 初始化文件接口 */
int    file_init(void);
/* 分配空的文件描述符 */
struct file_t *file_alloc(void);


struct file_t *file_open_root(void);
struct file_t *file_open(struct file_t * file);
int file_write(struct file_t *file, void *buf, int n); 
int file_seek(struct file_t *file, int dir, int n);
int file_read(struct file_t *file, void *buf, int n);


/* 最大允许同时打开的文件数 */
#define NFILES 1024

#endif /* _EKU_FILE_H_ */
